A Specialization Calculus for Pruning Disjunctive Predicates to Support Verification

نویسندگان

  • Wei-Ngan Chin
  • Cristian Gherghina
  • Razvan Voicu
  • Quang Loc Le
  • Florin Craciun
  • Shengchao Qin
چکیده

Separation logic-based abstraction mechanisms, enhanced with userdefined inductive predicates, represent a powerful, expressive means of specifying heap-based data structures with strong invariant properties. However, expressive power comes at a cost: the manipulation of such logics typically requires the unfolding of disjunctive predicates which may lead to expensive proof search. We address this problem by proposing a predicate specialization technique that allows efficient symbolic pruning of infeasible disjuncts inside each predicate instance. Our technique is presented as a calculus whose derivations preserve the satisfiability of formulas, while reducing the subsequent cost of their manipulation. Initial experimental results have confirmed significant speed gains from the deployment of predicate specialization. While specialization is a familiar technique for code optimization, its use in program verification is new.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Deciding Disjunctive Linear Arithmetic with SAT

Disjunctive Linear Arithmetic (DLA) is a major decidable theory that is supported by almost all existing theorem provers. The theory consists of Boolean combinations of predicates of the form Σ j=1aj · xj ≤ b, where the coefficients aj , the bound b and the variables x1 . . . xn are of type Real (R). We show a reduction to propositional logic from disjunctive linear arithmetic based on Fourier-...

متن کامل

Verification of Vortex Workflows

Vortex is a workflow language to support decision making activities. It centers around gathering and computing attributes of input objects. The semantics of Vortex is declarative, and the dependency graphs of Vortex programs are acyclic. This paper discusses the application of symbolic model checking techniques to verification of Vortex programs. As a case study we used a Vortex program MIHU fo...

متن کامل

Synthesizing Predicates from Abstract Domain Losses

Numeric abstract domains are key to many verification problems. Their ability to scale hinges on using convex approximations of the possible variable valuations. In certain cases, this approximation is too coarse to verify certain verification conditions, namely those that require disjunctive invariants. A common approach to infer disjunctive invariants is to track a set of states. However, thi...

متن کامل

SAT based Abstraction Refinement for Hardware Verification

Model checking is a widely used automatic formal verification technique. Despite the recent advances in model checking technology, its application is still limited by the state explosion problem. For model checking large real world systems, abstraction is essential. This thesis investigates abstraction techniques for the efficient verification of hardware designs with thousands of registers. A ...

متن کامل

Belnap's Epistemic States and Negation-as-Failure

Generalizing Belnap's system of epistemic states [Bel77] we obtain the system of disjunctive factbases which is the paradigm for all other kinds of disjunctive knowledge bases. Disjunctive factbases capture the nonmonotonic reasoning based on paraminimal models. In the schema of a disjunctive factbase, certain predicates of the resp. domain are declared to be exact, i.e. two-valued, and in turn...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011